AWS CLI で「Error parsing parameter」が発生するときの対処方法
困っていた内容
AWS CLI でコマンドを実行するとError parsing parameter
というエラーが表示されます。
AWS公式ドキュメントのコマンド例から値だけを書き換えているので、コマンドは間違っていないと思うのですが、対処方法を教えてください。
C:\> aws textract start-document-text-detection --document-location '{"S3Object":{"Bucket":"hato-test-bucket","Name":"TEST_OCR.pdf"}}' Error parsing parameter '--document-location': Expected: '=', received: ''' for input: '{S3Object:{Bucket:hato-test-bucket,Name:TEST_OCR.pdf}}' ^
どう対応すればいいの?
次の通りにコマンドを置き換えて、実行してください。
"
⇨\"
'
⇨"
# 変更前 aws textract start-document-text-detection --document-location '{"S3Object":{"Bucket":"hato-test-bucket","Name":"TEST_OCR.pdf"}}' # 変更後 aws textract start-document-text-detection --document-location "{\"S3Object\":{\"Bucket\":\"hato-bucket\",\"Name\":\"TEST_OCR.pdf\"}}"
コマンドで使用できる引用符('
や"
)は、OS(WindowsやMac、Linux)によって異なり、Windowsではシングルクォーテーション('
)を引用符として使用できません。
実行したコマンド例は、Mac、Linux向けであり、Windowsで実行する場合は、あらかじめダブルクォーテーション("
)とエスケープ(\"
)に置き換えて実行してください。
参考資料
Windows コマンドプロンプトでは、JSON データ構造を二重引用符
" "
で囲む必要があります。また、コマンドプロセッサによって、JSON に埋め込まれた二重引用符が誤って解釈されないようにするには、以下の例のように、JSON データ構造内の各二重引用符\
をエスケープする (バックスラッシュ"
文字で始める) 必要もあります。